package com.yhk.stack;

import java.util.LinkedList;

/**
 * @version 1.0
 * @Author moresuo
 * @Date 2024/10/9 21:18
 * @注释 链表实现栈
 */
public class MyLinkedStack<E> {
    private final LinkedList<E> list = new LinkedList<>();

    /**
     * 向栈顶加入元素
     * @param e 元素
     */
    public void push(E e) {
        //向链表尾部插入元素
        list.addLast(e);
    }

    /**
     * 从栈顶弹出元素
     * @return
     */
    public E pop() {
        //删除链表最后一个元素
        return list.removeLast();
    }

    /**
     * 查看栈顶元素
     * @return
     */
    public E peek() {
        //返回链表最后一个元素
        return list.getLast();
    }

    /**
     * 获取栈内元素个数
     * @return
     */
    public int size() {
        return list.size();
    }
}
